package com.mz.mattress.api.util;

/**
 * 视频工具 TODO jar占用过大
 *
 * @author: guohaibin
 * @date: 2022/8/27
 */
public class VideoUtil {

//    /**
//     * 截取视频第一帧(会跳过前5帧)
//     *
//     * @param urlStr
//     * @return InputStream  JPG格式流
//     * @author guohaibin
//     * @date 2022/8/27 16:19
//     */
//    public static InputStream fetchFrameByUrl(String urlStr) {
//        try {
//            URL url = URLUtil.url(urlStr);
//            InputStream inputStream = url.openStream();
//            FFmpegFrameGrabber ff = new FFmpegFrameGrabber(inputStream);
//            ff.start();
//            int length = ff.getLengthInFrames();
//            int i = 0;
//            Frame f = null;
//            while (i < length) {
//                // 过滤前5帧，避免出现全黑的图片，依自己情况而定
//                f = ff.grabFrame();
//                if ((i > 5) && (f.image != null)) {
//                    break;
//                }
//                i++;
//            }
//            int imageWidth = f.imageWidth ;
//            int imageHeight = f.imageHeight ;
//            // 对截取的帧进行等比例缩放
//            int width = 800;
//            int height = (int) (((double) width / imageWidth) * imageHeight);
//            Java2DFrameConverter converter =new Java2DFrameConverter();
//            BufferedImage fecthedImage =converter.getBufferedImage(f);
//            BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
//            bi.getGraphics().drawImage(fecthedImage.getScaledInstance(width, height, Image.SCALE_SMOOTH),
//                    0, 0, null);
//            ff.stop();
//            Img img = Img.from(bi);
//            return ImgUtil.toStream(img.getImg(), ImgUtil.IMAGE_TYPE_JPG);
//        } catch (Exception e) {
//            e.printStackTrace();
//            throw new ServiceException("截取视频首帧异常");
//        }
//    }

}
